Many business organizations and governmental entities seek fast and inexpensive access to large amounts of data stored in storage area networks. FIG. 1 illustrates relevant components of an exemplary data system 10 for storing data. Data system 10 consists of a host node 12 coupled to a storage area network (SAN). The SAN consists of data storage systems 14 and 16 and SAN switch 18.
Host node 12 takes form in a computer system (e.g., a server) having one or more processors and a memory for storing data or instructions. Host node 12 executes an operating system and a volume manager. Volume managers, such as Volume Manager™ provided by VERITAS Software Corporation of Mountain View, Calif., are systems for organizing and managing the distribution of data of a volume across one or more storage devices. Volume and disk management products from other product software companies also provide a system for organizing and managing the distribution of volume data across multiple storage devices.
Host node 12 may be coupled to one or more client computer systems (not shown). Host node 12 generates input/output (I/O) transactions for reading data from or writing data to the data volume contained in data storage systems 14 and 16. These I/O transactions are transmitted to data storage systems 14 and 16 via SAN switch 18.
Each of the data storage systems 14 and 16 includes a plurality of storage devices such as hard disks (not shown). For example, data storage system 14 includes three hard disks designated A1-A3, while data storage system 16 includes three hard disks designated B1-B3. Each of the data storage systems 14 and 16 also include one or more processors for processing I/O transactions received from host node 12 as will be more fully described below.
As noted above, host node 12 executes a volume manager. The volume manager organizes the hard disks and storage objects (e.g., subdisks, extents, plexes, etc.) created from the hard disks to form a data volume. In organizing these hard disks, the volume manager creates a description of how the data volume is organized or laid out. There are many different ways to organize a data volume from underlying hard disks and storage objects. The layout description relates the storage objects to each other or to the hard disks of the data storage systems.
Properties of the storage depend on how the volume manager organizes the data volume. In theory, there are a large number of ways to organize the data volume. Popular storage types include spanning storage (using storage from several devices to make a larger volume), striped storage (interleaving block ranges between devices to increase performance), and mirrored storage (storing extra copies of the data to improve reliability). Data system 10 will be described with host node 12 aggregating the hard disks and storage objects of data storage systems 14 and 16 to form mirrored volume storage.
A mirrored volume replicates data over two or more plexes of the same size. For purposes of explanation, host node 12 aggregates hard disks and storage objects to form a two-way mirrored volume. In this two-way mirror, a logical block number i of a volume maps to the same block number i on each mirrored plex. A two-way mirrored volume corresponds to RAID 1.
FIG. 2 illustrates an exemplary volume layout description for the exemplary two-way mirrored volume stored within systems 14 and 16 of FIG. 1. More particularly, FIG. 2 consists of two plexes (i.e., plex 1 and plex 2). Plex 1 consists of three subdisks designated subdisk 1-subdisk 3, while plex 2 consists of three subdisks designated subdisk 4-subdisk 6. FIG. 2 also shows that subdisk 1-subdisk 3 are allocated from contiguous regions of hard disks A1-A3, respectively, while subdisks 4-subdisk 6 are allocated from contiguous regions of hard disks B1-B3, respectively. The layout description illustrated in FIG. 2, is stored within memory of host node 12. It is noted that the volume manager can modify the layout description as the volume manager modifies the organization of the data volume. For example, the volume manager may create new, change existing, or destroys storage objects of the volume.
Host node 12 uses volume layout description for many purposes. For example, host node uses the volume layout description illustrated in FIG. 2 when writing data to or reading data from the data volume. To illustrate, when host node 12 seeks to write data D to block x of the mirrored data volume example, host node 12 accesses the volume layout description shown in FIG. 2 to determine the location of the plexes to be updated with data D. In the illustrated example, the volume layout description indicates that data D is to be written to plex 1 and plex 2 aggregated from hard disks located in data storage systems 14 and 16, respectively.
Because the plexes are located in different data storage systems, host node 12 must generate and transmit separate I/O transactions to write data D to the data volume. More particularly, host node 12 generates first and second I/O transactions for writing data D to block x in plex 1 and plex 2, respectively. The first and second I/O transactions are sent to data storage systems 14 and 16, respectively. Data storage systems 14 and 16 process the first and second I/O transactions, respectively, and write data D to respective hard disks. A high frequency of I/O transactions transmitted between host node 12 and data storage systems 14 and 16 may burden the data system 10.